\begin{tikzpicture}[>=latex,every node/.style={anchor=south west,,inner sep=0,fill=white}]
	
	%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
	\node at (0,0)(token){
		\begin{tabular}{|C{1em}|C{1em}|}
			\hline
			i & ·\\ \hline
		\end{tabular}
	};
	\node at ([xshift=-2em,yshift=0.2em]token.north){token};
	%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
	\node at ([xshift=3em,yshift=-1em]token.east) (SYNBL){
		\begin{tabular}{|C{4em}|C{4em}|C{4em}|C{4em}|}
			\hline 
			NAME & TYPE & CAT & ADDR\\ \hline
			\dots &  &  &  \\ \hline
		\end{tabular}
	};
	\node at ([xshift=-10em,yshift=0.5em]SYNBL.north){SYNBL(符号表)};
	%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
	\node at ([xshift=-7.5em,yshift=-7em]SYNBL.west) (TYPEL){
		\begin{tabular}{|C{4em}|C{5em}|}
			\hline
			TVAL & TPOINT· \\ \hline
		\end{tabular}
	};
	\node at ([xshift=-5em,yshift=0.5em]TYPEL.north){TYPEL(类型表)};
	%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
	\node at ([xshift=3em,yshift=0em]TYPEL.east)(AINFL){
		\begin{tabular}{|C{2em}|C{2em}|C{2em}|C{2em}|}
			\hline
			&  & &  \\ \hline
		\end{tabular}
	};
	\node at ([xshift=-6em,yshift=0.5em]AINFL.north){AINFL(数组表)};
	%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
	\node at ([xshift=-6.4em,yshift=-6em]AINFL.south)(RINFL){
		\begin{tabular}{|C{3em}|C{3em}|C{3em}|}
			\hline
			& & \\ \hline
			& & \\ \hline
		\end{tabular}
	};
	\node at ([xshift=-6em,yshift=0.5em]RINFL.north){RINFL(结构表)};
	\node at ([xshift=-4em,yshift=-1em]RINFL.west)(m1){\dots};
	\node at ([xshift=3em,yshift=-3em]SYNBL.east)(PFINFL){
		\begin{tabular}{|C{2em}|C{2em}|C{4em}|}
			\hline
			&  & \\ \hline
		\end{tabular}
	};
	\node at ([xshift=-5.4em,yshift=0.5em]PFINFL.north){PFINFL(函数表)};
	%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
	\node at ([xshift=-5em,yshift=-3em]PFINFL.south)(CONSL){
		\begin{tabular}{|C{4em}|}
			\hline
			\\ \hline
		\end{tabular}
	};
	\node at ([xshift=-3em,yshift=0.2em]CONSL.north){CONSL(常量表)};
	%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
	\node at ([xshift=-5em,yshift=-6em]PFINFL.south)(LENL){
		\begin{tabular}{|C{4em}|}
			\hline
			\\ \hline
		\end{tabular}
	};
	\node at ([xshift=-3em,yshift=0.2em]LENL.north){LENL(长度表)};
	\node[cloud, cloud puffs = 10, draw, minimum width = 8em, minimum height = 5em] at ([xshift=-2.5em,yshift=-5em]LENL.south){?};
	%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
	\node at ([xshift=-5em,yshift=-10em]PFINFL.south)(VALL){
		\begin{tabular}{|C{4em}|}
			\hline
			？\\ \hline
		\end{tabular}
	};
	\node at ([xshift=-3em,yshift=0.2em]VALL.north){\color{red}VALL(活动纪录)};
	%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
	\path[->, thick] ([xshift=-2em,yshift=0.8em]SYNBL.south) edge ([xshift=0em,yshift=2em]TYPEL.north);
	\path[->, thick] ([xshift=-1em,yshift=0em]TYPEL.east) edge ([xshift=0em,yshift=0em]AINFL.west);
	\path[->, thick] ([xshift=-1em,yshift=0em]TYPEL.east) edge ([xshift=0em,yshift=0.5em]m1.north);
	\draw[decorate,decoration={brace,raise=8pt,amplitude=5pt,mirror}] ([xshift=0em,yshift=0.5em]PFINFL.west) --([xshift=-3.5em,yshift=0em]LENL.south);
	\path[->, thick] ([xshift=-1em,yshift=0em]TYPEL.east) edge ([xshift=-6.5em,yshift=-0.5em]RINFL.north);
	\path[->, thick] ([xshift=10em,yshift=0.8em]SYNBL.south) edge ([xshift=-2em,yshift=0em]CONSL.west);
	\node(a1)[draw,fill=yellow!20,inner sep=0.5em,rectangle callout,callout relative pointer={(-1.5,-0.5)},rounded corners = 0.3em,align=center] at ([xshift=1em,yshift=2.5em]SYNBL.east) {名字\,类型\,种类\,地址};
\end{tikzpicture}